Ну для начала, что значит "не задерживал"? Если последующий код зависит от результата работы этого цикла, толку всё равно не будет.
Так что первым делом определись для себя, какие куски кода ты хочешь выполнять параллельно и почему. Вынеси эти фрагменты в отдельные функции.
Далее, реализовать более-менее параллельное выполнение можно через
threading.Thread, но там есть целый ряд подводных камней. В первую очередь, доступ на запись (или на чтение и запись) к одной и той же переменной из двух потоков. Во вторую, как следствие - умение передать исходные данные в другой поток и дождаться результата работы из другого потока. В третью - объекты из некоторых библиотек нормально работают только в пределах одного потока, передавать их между потоками нельзя.