Well i cannot agree with you because sometimes the same code executed on other machine uses more than one core, Top output:
PID USUARIO   PR  NI    VIRT    RES    SHR S  %CPU %MEM     HORA+ ORDEN
22854 jmarona+  20   0 30,861g 1,379g 261656 R 279,0  8,9   2:32.98 python
Lscpu output:
Arquitectura:          x86_64
modo(s) de operación de las CPUs:32-bit, 64-bit
Orden de bytes:        Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Hilo(s) de procesamiento por núcleo:2
Núcleo(s) por «socket»:2
Socket(s):             1
Modo(s) NUMA:          1
ID de fabricante:      GenuineIntel
Familia de CPU:        6
Modelo:                158
Model name:            Intel® Core™ i3-7100 CPU @ 3.90GHz
And in other machine:
lscpu output:
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 94
Model name:            Intel® Core™ i3-6100 CPU @ 3.70GHz
top output:
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
24971 jmarona+  20   0 16,284g 1,468g 298328 R 278,1  9,6 834:10.23 python
In this case n_workers is set to 0