Pandas-Profiling is a very heavy package and the time taken for each execution depends upon the size of the dataset.
It is not advisable to use pandas-profiling on large datasets unless you have a very powerful system.
Usually, datasets having more than 50000 rows should be avoided for pandas profiling.
Try specifying minimal=True, for larger datasets:
from pandas_profiling import ProfileReport
profile = ProfileReport(df, title='Pandas Profiling Report', minimal=True, progress_bar=False)
If the above code gives an error, please update pandas profiling following the below link.
Installing Pandas-Profiling in the Local System