¿Supongo que tiene una CPU con 8 núcleos virtuales (probablemente de cuatro núcleos con hiperprocesamiento)? Eso significa que un subproceso de CPU / núcleo virtual completamente cargado equivale a una carga total del 12,5%.
El intérprete de Python es una aplicación que solo se ejecuta como un único proceso de forma predeterminada y, por lo tanto, no puede aprovechar más de un núcleo virtual. Incluso si el código que ejecuta con él utiliza subprocesos múltiples, seguirá utilizando solo un subproceso de CPU / núcleo virtual, debido al GIL (bloqueo global del intérprete) .
Solo si su programa Python usa multiprocesamiento , que de hecho inicia múltiples instancias del intérprete de Python y les permite realizar sus tareas realmente paralelas, puede aprovechar múltiples núcleos virtuales / hilos de CPU. (Como @SargeBorsch señaló en su comentario, también hay algunas formas avanzadas de lograr esto sin multiprocesamiento, pero eso normalmente no es algo que usted mismo escriba rápidamente).