Просто чтобы уточнить: код в теле модуля не выполняется каждый раз, когда модуль импортируется - он запускается только один раз, после чего при последующем импорте вместо создания заново создается уже созданный модуль. Это. Взгляните на sys.modules, чтобы увидеть список кэшированных модулей.
Однако, если вашей проблемой является время, необходимое для первого импорта после запуска программы, вам, вероятно, придется использовать какой-то другой метод, кроме python dict. Вероятно, лучше всего было бы использовать форму на диске, например, базу данных sqlite, один из модулей dbm.
Для минимального изменения в вашем интерфейсе, модуль shelve может быть вашим лучшим вариантом - это создает довольно прозрачный интерфейс между модулями dbm, который заставляет их действовать как произвольный диктон python, позволяя сохранять любое выбираемое значение. Вот пример:
# Create dict with a million items:
import shelve
d = shelve.open('path/to/my_persistant_dict')
d.update(('key%d' % x, x) for x in xrange(1000000))
d.close()
Затем в следующем процессе используйте его. Не должно быть большой задержки, так как поиск выполняется только для ключа, запрошенного в форме на диске, поэтому не нужно загружать все в память:
>>> d = shelve.open('path/to/my_persistant_dict')
>>> print d['key99999']
99999
Это немного медленнее, чем настоящий дикт, и будет все еще долго загружаться, если вы сделаете что-то, что требует всех ключей (например, попытаться распечатать его), но может решить вашу проблема.