Embrace `multiprocessing.Pool` or `joblib` API: https://stackoverflow.com/questions/9786102/how-do-i-parallelize-a-simple-python-loop Or `concurrent.futures.ProcessPoolExecutor()`: https://towardsdatascience.com/heres-how-you-can-get-a-2-6x-speed-up-on-your-data-pre-processing-with-python-847887e63be5 None of them provide advanced serialization capabilities. See `robinvol-backtest/pool.py`.