I wrote two simple scripts to help demonstrate how to do what you want.  The first is using the label:
import tkinter as tk
root = tk.Tk()
status = tk.Label(root, text="Working")
status.grid()
def update_status():
    # Get the current message
    current_status = status["text"]
    # If the message is "Working...", start over with "Working"
    if current_status.endswith("..."): current_status = "Working"
    # If not, then just add a "." on the end
    else: current_status += "."
    # Update the message
    status["text"] = current_status
    # After 1 second, update the status
    root.after(1000, update_status)
# Launch the status message after 1 millisecond (when the window is loaded)
root.after(1, update_status)
root.mainloop()
The next one is using a progressbar:
import tkinter as tk
# You will need the ttk module for this
from tkinter import ttk
def update_status(step):
    # Step here is how much to increment the progressbar by.
    # It is in relation to the progressbar's length.
    # Since I made the length 100 and I am increasing by 10 each time,
    # there will be 10 times it increases before it restarts
    progress.step(step)
    # You can call 'update_status' whenever you want in your script
    # to increase the progressbar by whatever amount you want.
    root.after(1000, lambda: update_status(10))
root = tk.Tk()
progress = ttk.Progressbar(root, length=100)
progress.pack()
progress.after(1, lambda: update_status(10))
root.mainloop()
Note however that I couldn't do too much with the progressbar script because progressbars are a little tricky and need to be customized to your script exactly.  I just wrote it to maybe shed a little light on the subject.  The main part of my answer though is the label script.