PyInstaller due to its nature (unpacking executable files and running them) is likely to cause false positives with avirus software.
To add to this Smartscreen and alike oftentimes just flag uncommon software (as in: software that is not being used by a lot of people such as a custom written program) as malware.
All in all you can't really easily solve this. You could perhaps distribute Python itself (which is signed and known to not be a virus) together with a batch-script so you don't have to convert your code to an executable, as this is likely to always cause issues.