В 2018 году в Django разносить данные пользователя по двум раздельным таблицам User и Profile — категорически неправильно! Django уже года 4 как минимум позволяет создать собственную модель User со всеми необходимыми полями. Такой код будет намного проще писать и поддерживать, а еще исчезнет вагон и маленькая тележка JOIN'ов, необходимых для догрузки Profile.
А по сути вопроса: до сохранения экземпляра модели в базе, создавать связанные модели нельзя, так как Django необходимо знать первичный ключ User для их создания, а он генерируется в процессе сохранения модели.
Есть пакет, позволяющий обойти это ограничение:
django-modelcluster, но в вашем случае целесообразнее переписать модель пользователя.