We are doing so to have control over the methods. We usually want a method X to be executed for N seconds and be terminated after that. The same thing can be better achieved with a combination of threads and multiprocessing.
We can make use of the multiprocess.pool library to see whether we get better results and, furthermore, increasing the processor cores is always a good option.