parallelised using joblib
really slow parallel execution