The final freq_words function is missing nltk library call before FreqDist()
Before:
def freq_words(file, min=1, num=10, verbose=False):
freqdist = FreqDist()
...
After:
def freq_words(file, min=1, num=10, verbose=False):
freqdist = nltk.FreqDist()
...