I create 100 child processes
proc_list = [ Process(target = simulator, args=(result_queue,)) for i in xrange(100)]
and start them
The multiprocessing.Queue is said to be thread-safe in its documentations. But when you are doing inter-process communications with Queue, it should be used with multiprocessing.Manager().Queue()