The start method decides how a child process begins. With spawn a fresh interpreter imports your main module again (hence the if __name__ == '__main__': guard); fork copies the parent. multiprocessing.get_start_method() shows the current one.