Имя main в питоне не зарезервировано, просто функцию main() часто используют по аналогии с сишными программами (по этой функции видно, что делает программа и откуда всё начинается).
А ворота
if __name__ == '__main__':
нужны для того, чтобы исключить определённый код из импорта.
Каждый файл .py в питоне является модулем, его можно импортировать, как обычный модуль, и использовать содержимое из него (функции, классы и другие объекты). Но при этом и сам по себе файл что-то делает, если его запускают сам по себе. При импорте весь модуль сначала выполняется, но если тебе нужна только функция из модуля и тебе не нужно выполнять то, для чего весь этот модуль сделан, он всё равно будет выполняться весь. Поэтому в модуле ставятся ворота, которые пропускают только тогда, когда модуль запускается в виде самостоятельного файла. Когда же его импортируют, ворота не пропускают.
Зря ты начал изучение с Django, потому что там никто тебе не будет объяснять эти основы, а это реально самые основы питона.