https://medium.com/@AlexanderObregon/how-to-optimize-python-code-for-multi-core-processors-3af3fe937458