Тогда подскажите неучу как логически запустить несколько потоков в одном процессе на питоне и задействовать все ядра?
отвечая на твой конкретный вопрос: запустить в этих потоках код (например на С), не использующий объекты интепретатора и таким образом не требующий синхронизации на уровне интепретатора и отпускающий GIL.
либо же использовать механизм субинтерпретаторов, который уже давно есть в питоне, но не имеет API на стороне питона (соответствующий PEP отложен на 3.10).