It really depends on what you are doing. If you have one session and the session will be used by all the users from the application until the application is shutdown you must call it there. If you have multiple sessions that are transient in the time and can be recreated, before creating a new session you can call dispose.
The main idea behind the dispose method is to remove all the references that have the knowledge session to the domain objects and internal objects that are not needed anymore.
Greetings