How to find an optimum number of processes in GridSearchCV( ..., n_jobs = ... )?
An additional simpler answer by Prof. Kevyn Collins-Thompson, from course Applied Machine Learning in Python:
If I have 4 cores in my system, n_jobs = 30 (30 as an example) will be the same as n_jobs = 4. So no additional effect

So the maximum performance that can be obtained always is using n_jobs = -1
I'm wondering, which is better to use with GridSearchCV( ..., n_jobs = ... ) to pick the best parameter set for a model, n_jobs = -1 or n_jobs with a big number, like n_jobs = 30 ?
Based on Sklearn documentation:

n_jobs = -1 means that the computation will be dispatched on all the
  CPUs of the computer.

On my PC I have an Intel i3 CPU, which has 2 cores and 4 threads, so does that mean if I set n_jobs = -1, implicitly it will be equal to n_jobs = 2 ?