Adapted from https://github.com/ronert/.emacs.d/blob/master/lisp/init-sessions.el#L29
(setq session-save-file (expand-file-name "~/.emacs.d/.session"))
(add-hook 'after-init-hook 'session-initialize)
;; save a bunch of variables to the desktop file
;; for ...
use-package's :init block is run before the package has been loaded. Try putting the code inside a :config block instead, like:
I also removed the progn, as use-package allows multiple statements in the :config block.
EDIT: as requested in a comment, the desktop-save-mode use-package block: